﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;
using System.Runtime.Serialization;

namespace LowLevelGraphics
{
    /// <summary>
    /// Constructs a new hashset of type object
    /// </summary>
    public class HashSet : HashSet<object>
    {
        /// <summary>
        /// Default constructor
        /// </summary>
        public HashSet()
        {
        }

        /// <summary>
        /// Implement IEqualityComparer
        /// </summary>
        /// <param name="comparer"></param>
        public HashSet(IEqualityComparer<object> comparer)
            : base(comparer)
        {
            
        }

        /// <summary>
        /// Implement IEnumerable collection
        /// </summary>
        /// <param name="collection"></param>
        public HashSet(IEnumerable<object> collection)
            : base(collection)
        {
            
        }

        /// <summary>
        /// Implement IEnumerable / IEqualityComparer
        /// </summary>
        /// <param name="collection"></param>
        /// <param name="comparer"></param>
        public HashSet(IEnumerable<object> collection, IEqualityComparer<object> comparer)
            : base(collection, comparer)
        {
            
        }

        /// <summary>
        /// Implement serializationinfo
        /// StreamingContext
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        protected HashSet(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
            
        }
         
    }
}
